type MyPick<T, K extends keyof T> = {
    [P in K]: T[P]
}
/*
这个定义是 TypeScript 中一个很常用的工具类型 MyPick。它的功能是从一个类型 T 中选取部分属性 K extends keyof T，并创建一个新的类型。

让我们一步一步解释这个定义:

K extends keyof T
这部分定义了 K 必须是 T 类型的键(key)的子集。也就是说,K 必须是 T 类型中存在的属性名。
{ [P in K]: T[P] }
这是一个索引签名类型(index signature type)。
[P in K] 表示对 K 中的每一个属性 P，创建一个新的属性。
T[P] 表示获取 T 类型中属性 P 的类型。
综合起来,这部分定义了一个新的类型,它包含 K 中的所有属性,每个属性的类型都是从 T 中对应属性的类型获取的。
总的来说,MyPick<T, K> 定义了一个新的类型,它是从类型 T 中挑选出 K 中指定的属性,创建一个新的类型。

这个工具类型在实际开发中非常有用,比如你有一个复杂的类型 T，但只需要使用其中的部分属性,就可以使用 MyPick 来创建一个新的类型,提高代码的可读性和可维护性。
 */
